// pages/goods_list/goods_list.js
import { http } from '../../utils/request'
import { showToast } from '../../utils/show_toast'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    queryObj: {
      query: '', // 搜索关键词
      cid: '',  // 商品分类id
      pagenum: 1, 
      pagesize: 10
    },
    goodsList: [],
    total: 0,
    isLoading: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    this.setData({
     'queryObj.query': options.query || '',
     'queryObj.cid': options.cid || ''
    })
    await this.getGoodsList()
  },

  // 获取数据
  async getGoodsList(cb) {
    // 开启节流
    this.setData({
      isLoading: true
    })
    const { data: result } = await http.get('/goods/search', this.queryObj)

    // 数据加载完毕 停止下拉动作
    cb && cb()
    if(result.meta.status !== 200) return showToast()
    this.setData({
      goodsList: [...this.data.goodsList, ...result.message.goods],
      total: result.message.total
    })
    console.log(result.message)
    this.setData({
      isLoading: false
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  async onPullDownRefresh() {
    // 清空查询状态
    this.setData({
      'queryObj.pagenum': 1,
      total: 0,
      isLoading: false,
      goodsList: []
    })
    // 重新请求
    await this.getGoodsList(() => wx.stopPullDownRefresh())
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  async onReachBottom() {
    // 判断数据是否加载完毕
    if(this.data.queryObj.pagenum * this.data.queryObj.pagesize >= this.data.total) {
      return showToast('数据加载完毕！')
    }

    // 正在请求 退出函数
    if(this.data.isLoading) return
    // 页码 +1
    this.setData({
      'queryObj.pagenum': this.data.queryObj.pagenum += 1
    })
    await this.getGoodsList()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})